package com.demo.reg.controller;

import com.demo.common.controller.BaseController;
import com.demo.common.model.User;
import com.demo.reg.service.RegService;
import com.jfinal.aop.Inject;

import javax.servlet.http.Cookie;

public class RegController extends BaseController {
    /**
     * 注册service
     */
    @Inject
    private RegService regService;

    /**
     * 注册首页
     */
    public void toReg(){
        Cookie[] cookies = getRequest().getCookies();
        /*
            如果cookie不等于空就查询数组里面存储的用户账户名,
            根据用户手机号查询出用户信息,存储到session中,
            然后跳转页面
         */
        if(null!=cookies){
            for(Cookie cookie : cookies){
                if("loginname".equals(cookie.getName())){
                    //查询出用户信息
                    User userByLN = regService.getUserByLN(cookie.getValue());
                    setSessionAttr("user",userByLN);
                    redirect("/questiion/toQuestion");
                    return;
                }
            }
        }
        renderTemplate("reg.html");
    }

    /**
     * 注册处理
     */
    public void doReg(){
        User user = getModel(User.class,"u");
        //用户注册.如果成功返回true.失败或手机号重复返回false
        boolean flag = regService.createUser(user);
        //查询出用户信息
        User userByLN = regService.getUserByLN(user.getLoginname());
        //把用户Id存储到cookie当中
        Cookie cookie = new Cookie("userLoginname",userByLN.getLoginname());
        cookie.setMaxAge(60*60*24*365);
        cookie.setPath("/");
        //存储到cookie中
        getResponse().addCookie(cookie);
        //把查询到的用户信息到session当中
        setSessionAttr("user",userByLN);
        //设置session时长
        getSession().setMaxInactiveInterval(60*60*250*350);
        if(flag){
            rok("注册成功");
        }else{
            rerr("用户名不可重复");
        }
    }

}
